{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([[-0.017612, 14.053064],\n",
       "        [-1.395634,  4.662541],\n",
       "        [-0.752157,  6.53862 ],\n",
       "        [-1.322371,  7.152853],\n",
       "        [ 0.423363, 11.054677]]),\n",
       " array([-1.,  1., -1., -1., -1.]))"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "\n",
    "\n",
    "#加载数据\n",
    "def load_data():\n",
    "    with open('简单分类数据.txt') as fr:\n",
    "        lines = fr.readlines()\n",
    "\n",
    "    x = np.empty((len(lines), 2), dtype=float)\n",
    "    y = np.empty(len(lines), dtype=float)\n",
    "\n",
    "    for i in range(len(lines)):\n",
    "        line = lines[i].strip().split('\\t')\n",
    "        x[i] = line[:2]\n",
    "        y[i] = line[2]\n",
    "\n",
    "    return x, y\n",
    "\n",
    "\n",
    "x, y = load_data()\n",
    "x[:5], y[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "N, M = x.shape\n",
    "w = np.ones(2)\n",
    "b = 0.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "#把线画出来,线就是wx + b = 0\n",
    "def draw():\n",
    "    X = np.arange(x[:, 0].min(), x[:, 0].max(), 1)\n",
    "    Y = np.empty([len(X)])\n",
    "    for i in range(len(X)):\n",
    "        Y[i] = (-w[0] * X[i] - b) / w[1]\n",
    "\n",
    "    plt.scatter(x[:, 0], x[:, 1], c=y)\n",
    "    plt.plot(X, Y)\n",
    "\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "draw()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.999999197434851"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def predict(x):\n",
    "    z = w.dot(x) + b\n",
    "    return 1 / (1 + np.exp(-z))\n",
    "\n",
    "\n",
    "predict(x[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-540.4081260783354"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def get_loss():\n",
    "    loss = 0\n",
    "    for i in range(N):\n",
    "        if y[i] == 1:\n",
    "            #当y是1时,我希望predict(x[i])越大越好\n",
    "            loss += np.log(predict(x[i]))\n",
    "\n",
    "        if y[i] == -1:\n",
    "            #当y是-1时,我希望1-predict(x[i])越大越好\n",
    "            loss += np.log(1 - predict(x[i]))\n",
    "            \n",
    "    #写成书上的公式,这和上面的写法其实是一样的.\n",
    "    loss = 0\n",
    "    for i in range(N):\n",
    "        p = predict(x[i])\n",
    "        d = 1 if y[i] == 1 else 0\n",
    "        loss += d * np.log(p) + (1 - d) * np.log(1 - p)\n",
    "\n",
    "    return loss\n",
    "\n",
    "\n",
    "get_loss()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([ -19.34439272, -510.07213195]), -33.286852351091056)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#暴力求梯度法\n",
    "def gradient():\n",
    "    global w\n",
    "    global b\n",
    "    upsilon = 1e-2\n",
    "\n",
    "    l1 = get_loss()\n",
    "    w[0] += upsilon\n",
    "    l2 = get_loss()\n",
    "    w[0] -= upsilon\n",
    "    gradient_w0 = (l2 - l1) / upsilon\n",
    "\n",
    "    w[1] += upsilon\n",
    "    l2 = get_loss()\n",
    "    w[1] -= upsilon\n",
    "    gradient_w1 = (l2 - l1) / upsilon\n",
    "\n",
    "    b += upsilon\n",
    "    l2 = get_loss()\n",
    "    b -= upsilon\n",
    "    gradient_b = (l2 - l1) / upsilon\n",
    "\n",
    "    return np.array([gradient_w0, gradient_w1]), gradient_b\n",
    "\n",
    "\n",
    "gradient()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-849.7506395767857\n",
      "-9.85351358926892\n",
      "-103.73703332631135\n",
      "-28.9351102653891\n",
      "-12.89001666735565\n",
      "-9.35218572999099\n",
      "-9.32529120124075\n",
      "-9.323731446383107\n",
      "-9.324079875559004\n",
      "-9.325080903063883\n"
     ]
    }
   ],
   "source": [
    "#训练\n",
    "for i in range(100):\n",
    "    g_w, g_b = gradient()\n",
    "    w += g_w * 1e-2\n",
    "    b += g_b * 1e-1\n",
    "\n",
    "    if i % 10 == 0:\n",
    "        print(get_loss())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "draw()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
